class Funcionario < ActiveRecord::Base
  
  #attr_accessor :password
  before_save :encrypt_password
  
  has_one :dado_pessoal
  belongs_to :funcionarios_projeto
  has_many :tarefas_funcionarios
  
  accepts_nested_attributes_for :dado_pessoal  
 
  validates :login, :uniqueness => true, :presence => true, :length => {:minimum => 4}
  validates :password, :presence => true
  validates_with SenhaValidator
  
  def diferente_de_login?
    !self.password.eql?(self.login)
  end
  
  
  def self.authenticate(login, senha)
    funcionario = Funcionario.find_by_login(login)
    if funcionario && funcionario.password_hash == BCrypt::Engine.hash_secret(senha, funcionario.password_salt)
      funcionario
    else
      nil
    end
  end
  
  def encrypt_password
    if password.present?
      self.password_salt = BCrypt::Engine.generate_salt
      self.password_hash = BCrypt::Engine.hash_secret(password, self.password_salt)
    end
  end
  
end

